//
//  UIImage+Extension.h
//  DGGCommonSDK
//
//  Created by dgg_hzk on 2019/11/20.
//

#import <UIKit/UIKit.h>

@interface UIImage (Extension)

+ (UIImage *)gxz_imageWithColor:(UIColor *)color;

+ (UIImage *)videoFramerateWithPath:(NSString *)videoPath;

// 压缩图片
+ (UIImage *)simpleImage:(UIImage *)originImg;

+ (UIImage *)makeArrowImageWithSize:(CGSize)imageSize
                              image:(UIImage *)image
                           isSender:(BOOL)isSender;

+ (UIImage *)addImage2:(UIImage *)firstImg
               toImage:(UIImage *)secondImg;

+ (UIImage *)addImage:(UIImage *)firstImg
              toImage:(UIImage *)secondImg;

/**
 转换颜色为图片
 
 @param color 颜色
 @return 图片
 */
+ (UIImage *)imageWithColor:(UIColor *)color;


/**
 颜色绘制圆形图片
 
 @param sideLength 图片宽度
 @param color 颜色
 @return 图片
 */
+ (UIImage *)roundedImageWithSideLength:(CGFloat)sideLength color:(UIColor *)color;


/**
 按照尺寸压缩图片大小
 
 @param image 图片
 @param newSize 大小
 @return 新的图片
 */
+ (UIImage *)cropImage2NewImage:(UIImage *)image newSize:(CGSize)newSize;

/**
 生成带logo的二维码
 
 @param string 传入字符串
 @return return value description
 */
+ (UIImage *)logoQrCodeWithString:(NSString *)string;

/**
 二维码图片
 
 @param qrString 需要生成二维码的文本
 @param size 边长
 @return 二维码图片
 */
+(UIImage *)qRCodeImg:(NSString *)qrString withSize:(CGFloat)size;

/**
 加载bundle里asset里的图片
 
 @param bundleName bundle名称
 @param imageName 图片名称
 @return 图片
 */
+ (UIImage *)loadImageWithBundleName:(NSString *)bundleName imageName:(NSString *)imageName;
/**
 给图片添加文字水印
 
 @param image tup
 @param text 文字
 @param point 文字位置
 @param attributed 富文本
 @return 图片
 */
+ (UIImage *)waterImageWithImage:(UIImage *)image text:(NSString *)text textPoint:(CGPoint)point attributedString:(NSDictionary * )attributed;

/**
 改变图片大小至指定像素
 
 @param theImage 图片
 @param pixel 像素
 @return 压缩的图片
 */
+ (UIImage *)compressionImageWithImage:(UIImage *)theImage pixel:(CGFloat)pixel;

/**
 修改图片颜色
 
 @param color 颜色
 @return 新的图片
 */
- (UIImage *)imageByTintColor:(UIColor *)color;

/**
 获取图片主色调
 
 @return 颜色
 */
- (UIColor*)mostColor;

/**
 得到图像显示完整后的宽度和高度
 
 @param screenWidth 最大宽度
 @param screenHeight 最大高度
 @return 坐标
 */
- (CGRect)getBigImageRectSizeWithScreenWidth:(CGFloat)screenWidth screenHeight:(CGFloat)screenHeight;

/**
 图片裁剪
 
 @param rect 大小
 @return 图片
 */
- (UIImage*)getSubImage:(CGRect)rect;

/** 按给定的方向旋转图片 */
- (UIImage*)rotate:(UIImageOrientation)orient;

// 得到图像显示完整后的frame
- (CGRect)mss_getBigImageRectSizeWithScreenWidth:(CGFloat)screenWidth screenHeight:(CGFloat)screenHeight;

@end
